﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using DAO;
using BUS;

namespace QLKS
{
    public partial class frmKhachHang : Form
    {
        public frmKhachHang()
        {
            InitializeComponent();
        }

        private void LoadListView()
        {
            lvKhachHang.Items.Clear();
            DataTable dt = KhachHangDAO.GetAll();
            foreach (DataRow dr in dt.Rows)
            {
                ListViewItem lv = new ListViewItem(dr["MaKhachHang"].ToString());

                for (int i = 1; i < dt.Columns.Count; i++)
                {
                    lv.SubItems.Add(dr[i].ToString());
                }
                lvKhachHang.Items.Add(lv);
            }
        }
        private int TimViTri(DataTable dt)
        {
            int k = 1;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (int.Parse(dt.Rows[i].ItemArray[0].ToString()) == k)
                    k++;
            }
            return k;
        }
        private void lvKhachHang_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lvKhachHang.SelectedIndices.Count > 0)
            {
                int index = lvKhachHang.SelectedIndices[0];

                DataTable dt = KhachHangDAO.GetAll();
                DataRow dr = dt.Rows[index];

                txtMaKhachHang.Text = dr["MaKhachHang"].ToString();
                txtTenKhachHang.Text = dr["TenKhachHang"].ToString();
                cbbLoaiKhach.Text = dr["MaLoaiKhach"].ToString();
                txtCMND.Text = dr["CMND"].ToString();
                txtDiaChi.Text = dr["DiaChi"].ToString();
            }
        }

        private void frmKhachHang_Load(object sender, EventArgs e)
        {
            LoadListView();

            DataTable dt1 = LoaiKhachHangDAO.GetAll();
            foreach (DataRow dr in dt1.Rows)
            {
                cbbLoaiKhach.Items.Add(dr["MaLoaiKhach"]);
            }

            DataTable dt = KhachHangDAO.GetAll();
            int ma = TimViTri(dt);
            txtMaKhachHang.Text = ma.ToString();
            cbbLoaiKhach.Text = dt1.Rows[0].ItemArray[0].ToString();
        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            if (txtTenKhachHang.Text == "")
            {
                MessageBox.Show("Tên khách hàng không để trống", "Thông báo");
                return;
            }
            if (txtCMND.Text == "")
            {
                MessageBox.Show("Chứng minh nhân dân không để trống", "Thông báo");
                return;
            }
            if (txtDiaChi.Text == "")
            {
                MessageBox.Show("Địa chỉ khách hàng không để trống", "Thông báo");
                return;
            }

            DataTable dt = KhachHangDAO.GetAll();
            //String loaikhach = cbbLoaiKhach.Text;
            //DataTable dt1 = LoaiKhachHangDAO.LoaiKhachTheoTen(loaikhach);
            int vt = TimViTri(dt);

            KhachHangDTO kh = new KhachHangDTO();
            kh.MaKhachHang = vt;
            kh.TenKhachHang = txtTenKhachHang.Text;
            kh.MaLoaiKhach = int.Parse(cbbLoaiKhach.Text);//int.Parse(dt1.Rows[0].ItemArray[0].ToString());
            kh.Cmnd = txtCMND.Text;
            kh.DiaChi = txtDiaChi.Text;

            if (MessageBox.Show("Bạn có muốn thêm không ?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                KhachHangBUS bus = new KhachHangBUS();
                bus.ThemKhach(kh);
                MessageBox.Show("Thêm thành công", "Thông báo");
            }
            else
            {
                return;
            }

            LoadListView();
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (lvKhachHang.SelectedIndices.Count > 0)
            {
                int index = lvKhachHang.SelectedIndices[0];
                int ma = int.Parse(lvKhachHang.Items[index].SubItems[0].Text);

                lvKhachHang.Items.RemoveAt(index);

                if (MessageBox.Show("Bạn có muốn cập nhật phòng?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    KhachHangBUS bus = new KhachHangBUS();
                    bus.XoaKhach(ma);
                    MessageBox.Show("Xóa thành công", "Thông báo");
                }
                else
                {
                    return;
                }

                LoadListView();

            }
            else
                MessageBox.Show("Chọn khách hàng cần xóa", "Thông báo");
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (lvKhachHang.SelectedIndices.Count > 0)
            {
                int index = lvKhachHang.SelectedIndices[0];
                //String loaikhach = cbbLoaiKhach.Text;
                //DataTable dt1 = LoaiKhachHangDAO.LoaiKhachTheoTen(loaikhach);

                KhachHangDTO kh = new KhachHangDTO();
                kh.MaKhachHang = int.Parse(lvKhachHang.Items[index].SubItems[0].Text);
                kh.TenKhachHang = txtTenKhachHang.Text;
                kh.MaLoaiKhach = int.Parse(cbbLoaiKhach.Text);//int.Parse(dt1.Rows[0].ItemArray[0].ToString());
                kh.Cmnd = txtCMND.Text;
                kh.DiaChi = txtDiaChi.Text;

                if (MessageBox.Show("Bạn có muốn cập nhật khách hàng này?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    KhachHangBUS bus = new KhachHangBUS();
                    bus.CapNhatKhach(kh);
                    MessageBox.Show("Cập nhật hoàn tất", "Thông báo");
                }
                else
                {
                    return;
                }

                LoadListView();

            }
            else
                MessageBox.Show("Chọn khách hàng muốn cập nhật", "Thông báo");
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            DataTable dt = KhachHangDAO.GetAll();
            int vt = TimViTri(dt);
            txtMaKhachHang.Text = vt.ToString();
            txtTenKhachHang.Text = "";
            txtTenKhachHang.Focus();
            txtCMND.Text = "";
            txtDiaChi.Text = "";
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
